circuit BoothMul :
  module BoothMul :
    input clock : Clock
    input reset : UInt<1>
    output in : { flip load : UInt<1>, flip A : UInt<8>, flip B : UInt<8>}
    output out : { P : UInt<16>, Q : UInt<1>, c : UInt<8>, comp : UInt<8>, shift : UInt<1>}

    wire Acomp : UInt<8> @[BoothMul.scala 27:19]
    wire _prod_WIRE : UInt<1>[16] @[BoothMul.scala 29:29]
    _prod_WIRE[0] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[1] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[2] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[3] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[4] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[5] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[6] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[7] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[8] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[9] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[10] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[11] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[12] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[13] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[14] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    _prod_WIRE[15] <= UInt<1>("h0") @[BoothMul.scala 29:29]
    reg prod : UInt<1>[16], clock with :
      reset => (UInt<1>("h0"), prod) @[BoothMul.scala 29:21]
    prod[0] <= _prod_WIRE[0] @[BoothMul.scala 29:21]
    prod[1] <= _prod_WIRE[1] @[BoothMul.scala 29:21]
    prod[2] <= _prod_WIRE[2] @[BoothMul.scala 29:21]
    prod[3] <= _prod_WIRE[3] @[BoothMul.scala 29:21]
    prod[4] <= _prod_WIRE[4] @[BoothMul.scala 29:21]
    prod[5] <= _prod_WIRE[5] @[BoothMul.scala 29:21]
    prod[6] <= _prod_WIRE[6] @[BoothMul.scala 29:21]
    prod[7] <= _prod_WIRE[7] @[BoothMul.scala 29:21]
    prod[8] <= _prod_WIRE[8] @[BoothMul.scala 29:21]
    prod[9] <= _prod_WIRE[9] @[BoothMul.scala 29:21]
    prod[10] <= _prod_WIRE[10] @[BoothMul.scala 29:21]
    prod[11] <= _prod_WIRE[11] @[BoothMul.scala 29:21]
    prod[12] <= _prod_WIRE[12] @[BoothMul.scala 29:21]
    prod[13] <= _prod_WIRE[13] @[BoothMul.scala 29:21]
    prod[14] <= _prod_WIRE[14] @[BoothMul.scala 29:21]
    prod[15] <= _prod_WIRE[15] @[BoothMul.scala 29:21]
    reg Q : UInt, clock with :
      reset => (UInt<1>("h0"), Q) @[BoothMul.scala 31:21]
    Q <= UInt<1>("h0") @[BoothMul.scala 31:21]
    wire carry : UInt<1>[9] @[BoothMul.scala 32:19]
    reg shift : UInt<1>, clock with :
      reset => (UInt<1>("h0"), shift) @[BoothMul.scala 33:22]
    shift <= UInt<1>("h0") @[BoothMul.scala 33:22]
    reg count : UInt, clock with :
      reset => (UInt<1>("h0"), count) @[BoothMul.scala 34:22]
    count <= UInt<8>("h0") @[BoothMul.scala 34:22]
    node _Acomp_T = sub(UInt<9>("h100"), in.A) @[BoothMul.scala 37:26]
    node _Acomp_T_1 = tail(_Acomp_T, 1) @[BoothMul.scala 37:26]
    Acomp <= _Acomp_T_1 @[BoothMul.scala 37:9]
    carry[0] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[1] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[2] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[3] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[4] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[5] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[6] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[7] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    carry[8] <= UInt<1>("h0") @[BoothMul.scala 39:14]
    when in.load : @[BoothMul.scala 42:17]
      Q <= UInt<1>("h0") @[BoothMul.scala 44:7]
      node _prod_0_T = bits(in.B, 0, 0) @[BoothMul.scala 46:22]
      prod[0] <= _prod_0_T @[BoothMul.scala 46:15]
      prod[8] <= UInt<1>("h0") @[BoothMul.scala 47:22]
      node _prod_1_T = bits(in.B, 1, 1) @[BoothMul.scala 46:22]
      prod[1] <= _prod_1_T @[BoothMul.scala 46:15]
      prod[9] <= UInt<1>("h0") @[BoothMul.scala 47:22]
      node _prod_2_T = bits(in.B, 2, 2) @[BoothMul.scala 46:22]
      prod[2] <= _prod_2_T @[BoothMul.scala 46:15]
      prod[10] <= UInt<1>("h0") @[BoothMul.scala 47:22]
      node _prod_3_T = bits(in.B, 3, 3) @[BoothMul.scala 46:22]
      prod[3] <= _prod_3_T @[BoothMul.scala 46:15]
      prod[11] <= UInt<1>("h0") @[BoothMul.scala 47:22]
      node _prod_4_T = bits(in.B, 4, 4) @[BoothMul.scala 46:22]
      prod[4] <= _prod_4_T @[BoothMul.scala 46:15]
      prod[12] <= UInt<1>("h0") @[BoothMul.scala 47:22]
      node _prod_5_T = bits(in.B, 5, 5) @[BoothMul.scala 46:22]
      prod[5] <= _prod_5_T @[BoothMul.scala 46:15]
      prod[13] <= UInt<1>("h0") @[BoothMul.scala 47:22]
      node _prod_6_T = bits(in.B, 6, 6) @[BoothMul.scala 46:22]
      prod[6] <= _prod_6_T @[BoothMul.scala 46:15]
      prod[14] <= UInt<1>("h0") @[BoothMul.scala 47:22]
      node _prod_7_T = bits(in.B, 7, 7) @[BoothMul.scala 46:22]
      prod[7] <= _prod_7_T @[BoothMul.scala 46:15]
      prod[15] <= UInt<1>("h0") @[BoothMul.scala 47:22]
    else :
      node _T = lt(count, UInt<4>("h8")) @[BoothMul.scala 49:20]
      when _T : @[BoothMul.scala 49:29]
        when shift : @[BoothMul.scala 51:17]
          Q <= prod[0] @[BoothMul.scala 53:9]
          prod[0] <= prod[1] @[BoothMul.scala 55:17]
          prod[1] <= prod[2] @[BoothMul.scala 55:17]
          prod[2] <= prod[3] @[BoothMul.scala 55:17]
          prod[3] <= prod[4] @[BoothMul.scala 55:17]
          prod[4] <= prod[5] @[BoothMul.scala 55:17]
          prod[5] <= prod[6] @[BoothMul.scala 55:17]
          prod[6] <= prod[7] @[BoothMul.scala 55:17]
          prod[7] <= prod[8] @[BoothMul.scala 55:17]
          prod[8] <= prod[9] @[BoothMul.scala 55:17]
          prod[9] <= prod[10] @[BoothMul.scala 55:17]
          prod[10] <= prod[11] @[BoothMul.scala 55:17]
          prod[11] <= prod[12] @[BoothMul.scala 55:17]
          prod[12] <= prod[13] @[BoothMul.scala 55:17]
          prod[13] <= prod[14] @[BoothMul.scala 55:17]
          prod[14] <= prod[15] @[BoothMul.scala 55:17]
          prod[15] <= prod[15] @[BoothMul.scala 57:22]
          node _count_T = add(count, UInt<1>("h1")) @[BoothMul.scala 58:22]
          node _count_T_1 = tail(_count_T, 1) @[BoothMul.scala 58:22]
          count <= _count_T_1 @[BoothMul.scala 58:13]
          shift <= UInt<1>("h0") @[BoothMul.scala 59:13]
        else :
          node _T_1 = eq(Q, UInt<1>("h0")) @[BoothMul.scala 61:18]
          node _T_2 = eq(prod[0], UInt<1>("h1")) @[BoothMul.scala 61:31]
          node _T_3 = and(_T_1, _T_2) @[BoothMul.scala 61:26]
          when _T_3 : @[BoothMul.scala 61:40]
            node m = bits(Acomp, 0, 0) @[BoothMul.scala 65:22]
            node _prod_8_T = xor(prod[8], m) @[BoothMul.scala 68:16]
            node _prod_8_T_1 = xor(_prod_8_T, carry[0]) @[BoothMul.scala 68:20]
            prod[8] <= _prod_8_T_1 @[BoothMul.scala 68:11]
            node _carry_1_T = and(prod[8], m) @[BoothMul.scala 69:18]
            node _carry_1_T_1 = and(m, carry[0]) @[BoothMul.scala 69:28]
            node _carry_1_T_2 = or(_carry_1_T, _carry_1_T_1) @[BoothMul.scala 69:23]
            node _carry_1_T_3 = and(carry[0], prod[8]) @[BoothMul.scala 69:38]
            node _carry_1_T_4 = or(_carry_1_T_2, _carry_1_T_3) @[BoothMul.scala 69:33]
            carry[1] <= _carry_1_T_4 @[BoothMul.scala 69:12]
            node m_1 = bits(Acomp, 1, 1) @[BoothMul.scala 65:22]
            node _prod_9_T = xor(prod[9], m_1) @[BoothMul.scala 68:16]
            node _prod_9_T_1 = xor(_prod_9_T, carry[1]) @[BoothMul.scala 68:20]
            prod[9] <= _prod_9_T_1 @[BoothMul.scala 68:11]
            node _carry_2_T = and(prod[9], m_1) @[BoothMul.scala 69:18]
            node _carry_2_T_1 = and(m_1, carry[1]) @[BoothMul.scala 69:28]
            node _carry_2_T_2 = or(_carry_2_T, _carry_2_T_1) @[BoothMul.scala 69:23]
            node _carry_2_T_3 = and(carry[1], prod[9]) @[BoothMul.scala 69:38]
            node _carry_2_T_4 = or(_carry_2_T_2, _carry_2_T_3) @[BoothMul.scala 69:33]
            carry[2] <= _carry_2_T_4 @[BoothMul.scala 69:12]
            node m_2 = bits(Acomp, 2, 2) @[BoothMul.scala 65:22]
            node _prod_10_T = xor(prod[10], m_2) @[BoothMul.scala 68:16]
            node _prod_10_T_1 = xor(_prod_10_T, carry[2]) @[BoothMul.scala 68:20]
            prod[10] <= _prod_10_T_1 @[BoothMul.scala 68:11]
            node _carry_3_T = and(prod[10], m_2) @[BoothMul.scala 69:18]
            node _carry_3_T_1 = and(m_2, carry[2]) @[BoothMul.scala 69:28]
            node _carry_3_T_2 = or(_carry_3_T, _carry_3_T_1) @[BoothMul.scala 69:23]
            node _carry_3_T_3 = and(carry[2], prod[10]) @[BoothMul.scala 69:38]
            node _carry_3_T_4 = or(_carry_3_T_2, _carry_3_T_3) @[BoothMul.scala 69:33]
            carry[3] <= _carry_3_T_4 @[BoothMul.scala 69:12]
            node m_3 = bits(Acomp, 3, 3) @[BoothMul.scala 65:22]
            node _prod_11_T = xor(prod[11], m_3) @[BoothMul.scala 68:16]
            node _prod_11_T_1 = xor(_prod_11_T, carry[3]) @[BoothMul.scala 68:20]
            prod[11] <= _prod_11_T_1 @[BoothMul.scala 68:11]
            node _carry_4_T = and(prod[11], m_3) @[BoothMul.scala 69:18]
            node _carry_4_T_1 = and(m_3, carry[3]) @[BoothMul.scala 69:28]
            node _carry_4_T_2 = or(_carry_4_T, _carry_4_T_1) @[BoothMul.scala 69:23]
            node _carry_4_T_3 = and(carry[3], prod[11]) @[BoothMul.scala 69:38]
            node _carry_4_T_4 = or(_carry_4_T_2, _carry_4_T_3) @[BoothMul.scala 69:33]
            carry[4] <= _carry_4_T_4 @[BoothMul.scala 69:12]
            node m_4 = bits(Acomp, 4, 4) @[BoothMul.scala 65:22]
            node _prod_12_T = xor(prod[12], m_4) @[BoothMul.scala 68:16]
            node _prod_12_T_1 = xor(_prod_12_T, carry[4]) @[BoothMul.scala 68:20]
            prod[12] <= _prod_12_T_1 @[BoothMul.scala 68:11]
            node _carry_5_T = and(prod[12], m_4) @[BoothMul.scala 69:18]
            node _carry_5_T_1 = and(m_4, carry[4]) @[BoothMul.scala 69:28]
            node _carry_5_T_2 = or(_carry_5_T, _carry_5_T_1) @[BoothMul.scala 69:23]
            node _carry_5_T_3 = and(carry[4], prod[12]) @[BoothMul.scala 69:38]
            node _carry_5_T_4 = or(_carry_5_T_2, _carry_5_T_3) @[BoothMul.scala 69:33]
            carry[5] <= _carry_5_T_4 @[BoothMul.scala 69:12]
            node m_5 = bits(Acomp, 5, 5) @[BoothMul.scala 65:22]
            node _prod_13_T = xor(prod[13], m_5) @[BoothMul.scala 68:16]
            node _prod_13_T_1 = xor(_prod_13_T, carry[5]) @[BoothMul.scala 68:20]
            prod[13] <= _prod_13_T_1 @[BoothMul.scala 68:11]
            node _carry_6_T = and(prod[13], m_5) @[BoothMul.scala 69:18]
            node _carry_6_T_1 = and(m_5, carry[5]) @[BoothMul.scala 69:28]
            node _carry_6_T_2 = or(_carry_6_T, _carry_6_T_1) @[BoothMul.scala 69:23]
            node _carry_6_T_3 = and(carry[5], prod[13]) @[BoothMul.scala 69:38]
            node _carry_6_T_4 = or(_carry_6_T_2, _carry_6_T_3) @[BoothMul.scala 69:33]
            carry[6] <= _carry_6_T_4 @[BoothMul.scala 69:12]
            node m_6 = bits(Acomp, 6, 6) @[BoothMul.scala 65:22]
            node _prod_14_T = xor(prod[14], m_6) @[BoothMul.scala 68:16]
            node _prod_14_T_1 = xor(_prod_14_T, carry[6]) @[BoothMul.scala 68:20]
            prod[14] <= _prod_14_T_1 @[BoothMul.scala 68:11]
            node _carry_7_T = and(prod[14], m_6) @[BoothMul.scala 69:18]
            node _carry_7_T_1 = and(m_6, carry[6]) @[BoothMul.scala 69:28]
            node _carry_7_T_2 = or(_carry_7_T, _carry_7_T_1) @[BoothMul.scala 69:23]
            node _carry_7_T_3 = and(carry[6], prod[14]) @[BoothMul.scala 69:38]
            node _carry_7_T_4 = or(_carry_7_T_2, _carry_7_T_3) @[BoothMul.scala 69:33]
            carry[7] <= _carry_7_T_4 @[BoothMul.scala 69:12]
            node m_7 = bits(Acomp, 7, 7) @[BoothMul.scala 65:22]
            node _prod_15_T = xor(prod[15], m_7) @[BoothMul.scala 68:16]
            node _prod_15_T_1 = xor(_prod_15_T, carry[7]) @[BoothMul.scala 68:20]
            prod[15] <= _prod_15_T_1 @[BoothMul.scala 68:11]
            node _carry_8_T = and(prod[15], m_7) @[BoothMul.scala 69:18]
            node _carry_8_T_1 = and(m_7, carry[7]) @[BoothMul.scala 69:28]
            node _carry_8_T_2 = or(_carry_8_T, _carry_8_T_1) @[BoothMul.scala 69:23]
            node _carry_8_T_3 = and(carry[7], prod[15]) @[BoothMul.scala 69:38]
            node _carry_8_T_4 = or(_carry_8_T_2, _carry_8_T_3) @[BoothMul.scala 69:33]
            carry[8] <= _carry_8_T_4 @[BoothMul.scala 69:12]
            prod[0] <= prod[0] @[BoothMul.scala 72:17]
            prod[1] <= prod[1] @[BoothMul.scala 72:17]
            prod[2] <= prod[2] @[BoothMul.scala 72:17]
            prod[3] <= prod[3] @[BoothMul.scala 72:17]
            prod[4] <= prod[4] @[BoothMul.scala 72:17]
            prod[5] <= prod[5] @[BoothMul.scala 72:17]
            prod[6] <= prod[6] @[BoothMul.scala 72:17]
            prod[7] <= prod[7] @[BoothMul.scala 72:17]
            shift <= UInt<1>("h1") @[BoothMul.scala 74:13]
          else :
            node _T_4 = eq(Q, UInt<1>("h1")) @[BoothMul.scala 76:18]
            node _T_5 = eq(prod[0], UInt<1>("h0")) @[BoothMul.scala 76:31]
            node _T_6 = and(_T_4, _T_5) @[BoothMul.scala 76:26]
            when _T_6 : @[BoothMul.scala 76:40]
              node m_8 = bits(in.A, 0, 0) @[BoothMul.scala 80:21]
              node _prod_8_T_2 = xor(prod[8], m_8) @[BoothMul.scala 83:16]
              node _prod_8_T_3 = xor(_prod_8_T_2, carry[0]) @[BoothMul.scala 83:20]
              prod[8] <= _prod_8_T_3 @[BoothMul.scala 83:11]
              node _carry_1_T_5 = and(prod[8], m_8) @[BoothMul.scala 84:18]
              node _carry_1_T_6 = and(m_8, carry[0]) @[BoothMul.scala 84:28]
              node _carry_1_T_7 = or(_carry_1_T_5, _carry_1_T_6) @[BoothMul.scala 84:23]
              node _carry_1_T_8 = and(carry[0], prod[8]) @[BoothMul.scala 84:38]
              node _carry_1_T_9 = or(_carry_1_T_7, _carry_1_T_8) @[BoothMul.scala 84:33]
              carry[1] <= _carry_1_T_9 @[BoothMul.scala 84:12]
              node m_9 = bits(in.A, 1, 1) @[BoothMul.scala 80:21]
              node _prod_9_T_2 = xor(prod[9], m_9) @[BoothMul.scala 83:16]
              node _prod_9_T_3 = xor(_prod_9_T_2, carry[1]) @[BoothMul.scala 83:20]
              prod[9] <= _prod_9_T_3 @[BoothMul.scala 83:11]
              node _carry_2_T_5 = and(prod[9], m_9) @[BoothMul.scala 84:18]
              node _carry_2_T_6 = and(m_9, carry[1]) @[BoothMul.scala 84:28]
              node _carry_2_T_7 = or(_carry_2_T_5, _carry_2_T_6) @[BoothMul.scala 84:23]
              node _carry_2_T_8 = and(carry[1], prod[9]) @[BoothMul.scala 84:38]
              node _carry_2_T_9 = or(_carry_2_T_7, _carry_2_T_8) @[BoothMul.scala 84:33]
              carry[2] <= _carry_2_T_9 @[BoothMul.scala 84:12]
              node m_10 = bits(in.A, 2, 2) @[BoothMul.scala 80:21]
              node _prod_10_T_2 = xor(prod[10], m_10) @[BoothMul.scala 83:16]
              node _prod_10_T_3 = xor(_prod_10_T_2, carry[2]) @[BoothMul.scala 83:20]
              prod[10] <= _prod_10_T_3 @[BoothMul.scala 83:11]
              node _carry_3_T_5 = and(prod[10], m_10) @[BoothMul.scala 84:18]
              node _carry_3_T_6 = and(m_10, carry[2]) @[BoothMul.scala 84:28]
              node _carry_3_T_7 = or(_carry_3_T_5, _carry_3_T_6) @[BoothMul.scala 84:23]
              node _carry_3_T_8 = and(carry[2], prod[10]) @[BoothMul.scala 84:38]
              node _carry_3_T_9 = or(_carry_3_T_7, _carry_3_T_8) @[BoothMul.scala 84:33]
              carry[3] <= _carry_3_T_9 @[BoothMul.scala 84:12]
              node m_11 = bits(in.A, 3, 3) @[BoothMul.scala 80:21]
              node _prod_11_T_2 = xor(prod[11], m_11) @[BoothMul.scala 83:16]
              node _prod_11_T_3 = xor(_prod_11_T_2, carry[3]) @[BoothMul.scala 83:20]
              prod[11] <= _prod_11_T_3 @[BoothMul.scala 83:11]
              node _carry_4_T_5 = and(prod[11], m_11) @[BoothMul.scala 84:18]
              node _carry_4_T_6 = and(m_11, carry[3]) @[BoothMul.scala 84:28]
              node _carry_4_T_7 = or(_carry_4_T_5, _carry_4_T_6) @[BoothMul.scala 84:23]
              node _carry_4_T_8 = and(carry[3], prod[11]) @[BoothMul.scala 84:38]
              node _carry_4_T_9 = or(_carry_4_T_7, _carry_4_T_8) @[BoothMul.scala 84:33]
              carry[4] <= _carry_4_T_9 @[BoothMul.scala 84:12]
              node m_12 = bits(in.A, 4, 4) @[BoothMul.scala 80:21]
              node _prod_12_T_2 = xor(prod[12], m_12) @[BoothMul.scala 83:16]
              node _prod_12_T_3 = xor(_prod_12_T_2, carry[4]) @[BoothMul.scala 83:20]
              prod[12] <= _prod_12_T_3 @[BoothMul.scala 83:11]
              node _carry_5_T_5 = and(prod[12], m_12) @[BoothMul.scala 84:18]
              node _carry_5_T_6 = and(m_12, carry[4]) @[BoothMul.scala 84:28]
              node _carry_5_T_7 = or(_carry_5_T_5, _carry_5_T_6) @[BoothMul.scala 84:23]
              node _carry_5_T_8 = and(carry[4], prod[12]) @[BoothMul.scala 84:38]
              node _carry_5_T_9 = or(_carry_5_T_7, _carry_5_T_8) @[BoothMul.scala 84:33]
              carry[5] <= _carry_5_T_9 @[BoothMul.scala 84:12]
              node m_13 = bits(in.A, 5, 5) @[BoothMul.scala 80:21]
              node _prod_13_T_2 = xor(prod[13], m_13) @[BoothMul.scala 83:16]
              node _prod_13_T_3 = xor(_prod_13_T_2, carry[5]) @[BoothMul.scala 83:20]
              prod[13] <= _prod_13_T_3 @[BoothMul.scala 83:11]
              node _carry_6_T_5 = and(prod[13], m_13) @[BoothMul.scala 84:18]
              node _carry_6_T_6 = and(m_13, carry[5]) @[BoothMul.scala 84:28]
              node _carry_6_T_7 = or(_carry_6_T_5, _carry_6_T_6) @[BoothMul.scala 84:23]
              node _carry_6_T_8 = and(carry[5], prod[13]) @[BoothMul.scala 84:38]
              node _carry_6_T_9 = or(_carry_6_T_7, _carry_6_T_8) @[BoothMul.scala 84:33]
              carry[6] <= _carry_6_T_9 @[BoothMul.scala 84:12]
              node m_14 = bits(in.A, 6, 6) @[BoothMul.scala 80:21]
              node _prod_14_T_2 = xor(prod[14], m_14) @[BoothMul.scala 83:16]
              node _prod_14_T_3 = xor(_prod_14_T_2, carry[6]) @[BoothMul.scala 83:20]
              prod[14] <= _prod_14_T_3 @[BoothMul.scala 83:11]
              node _carry_7_T_5 = and(prod[14], m_14) @[BoothMul.scala 84:18]
              node _carry_7_T_6 = and(m_14, carry[6]) @[BoothMul.scala 84:28]
              node _carry_7_T_7 = or(_carry_7_T_5, _carry_7_T_6) @[BoothMul.scala 84:23]
              node _carry_7_T_8 = and(carry[6], prod[14]) @[BoothMul.scala 84:38]
              node _carry_7_T_9 = or(_carry_7_T_7, _carry_7_T_8) @[BoothMul.scala 84:33]
              carry[7] <= _carry_7_T_9 @[BoothMul.scala 84:12]
              node m_15 = bits(in.A, 7, 7) @[BoothMul.scala 80:21]
              node _prod_15_T_2 = xor(prod[15], m_15) @[BoothMul.scala 83:16]
              node _prod_15_T_3 = xor(_prod_15_T_2, carry[7]) @[BoothMul.scala 83:20]
              prod[15] <= _prod_15_T_3 @[BoothMul.scala 83:11]
              node _carry_8_T_5 = and(prod[15], m_15) @[BoothMul.scala 84:18]
              node _carry_8_T_6 = and(m_15, carry[7]) @[BoothMul.scala 84:28]
              node _carry_8_T_7 = or(_carry_8_T_5, _carry_8_T_6) @[BoothMul.scala 84:23]
              node _carry_8_T_8 = and(carry[7], prod[15]) @[BoothMul.scala 84:38]
              node _carry_8_T_9 = or(_carry_8_T_7, _carry_8_T_8) @[BoothMul.scala 84:33]
              carry[8] <= _carry_8_T_9 @[BoothMul.scala 84:12]
              prod[0] <= prod[0] @[BoothMul.scala 87:17]
              prod[1] <= prod[1] @[BoothMul.scala 87:17]
              prod[2] <= prod[2] @[BoothMul.scala 87:17]
              prod[3] <= prod[3] @[BoothMul.scala 87:17]
              prod[4] <= prod[4] @[BoothMul.scala 87:17]
              prod[5] <= prod[5] @[BoothMul.scala 87:17]
              prod[6] <= prod[6] @[BoothMul.scala 87:17]
              prod[7] <= prod[7] @[BoothMul.scala 87:17]
              shift <= UInt<1>("h1") @[BoothMul.scala 89:13]
            else :
              prod[0] <= prod[0] @[BoothMul.scala 93:12]
              prod[1] <= prod[1] @[BoothMul.scala 93:12]
              prod[2] <= prod[2] @[BoothMul.scala 93:12]
              prod[3] <= prod[3] @[BoothMul.scala 93:12]
              prod[4] <= prod[4] @[BoothMul.scala 93:12]
              prod[5] <= prod[5] @[BoothMul.scala 93:12]
              prod[6] <= prod[6] @[BoothMul.scala 93:12]
              prod[7] <= prod[7] @[BoothMul.scala 93:12]
              prod[8] <= prod[8] @[BoothMul.scala 93:12]
              prod[9] <= prod[9] @[BoothMul.scala 93:12]
              prod[10] <= prod[10] @[BoothMul.scala 93:12]
              prod[11] <= prod[11] @[BoothMul.scala 93:12]
              prod[12] <= prod[12] @[BoothMul.scala 93:12]
              prod[13] <= prod[13] @[BoothMul.scala 93:12]
              prod[14] <= prod[14] @[BoothMul.scala 93:12]
              prod[15] <= prod[15] @[BoothMul.scala 93:12]
              Q <= Q @[BoothMul.scala 94:9]
              shift <= UInt<1>("h1") @[BoothMul.scala 95:13]
    node out_P_lo_lo_lo = cat(prod[1], prod[0]) @[BoothMul.scala 101:17]
    node out_P_lo_lo_hi = cat(prod[3], prod[2]) @[BoothMul.scala 101:17]
    node out_P_lo_lo = cat(out_P_lo_lo_hi, out_P_lo_lo_lo) @[BoothMul.scala 101:17]
    node out_P_lo_hi_lo = cat(prod[5], prod[4]) @[BoothMul.scala 101:17]
    node out_P_lo_hi_hi = cat(prod[7], prod[6]) @[BoothMul.scala 101:17]
    node out_P_lo_hi = cat(out_P_lo_hi_hi, out_P_lo_hi_lo) @[BoothMul.scala 101:17]
    node out_P_lo = cat(out_P_lo_hi, out_P_lo_lo) @[BoothMul.scala 101:17]
    node out_P_hi_lo_lo = cat(prod[9], prod[8]) @[BoothMul.scala 101:17]
    node out_P_hi_lo_hi = cat(prod[11], prod[10]) @[BoothMul.scala 101:17]
    node out_P_hi_lo = cat(out_P_hi_lo_hi, out_P_hi_lo_lo) @[BoothMul.scala 101:17]
    node out_P_hi_hi_lo = cat(prod[13], prod[12]) @[BoothMul.scala 101:17]
    node out_P_hi_hi_hi = cat(prod[15], prod[14]) @[BoothMul.scala 101:17]
    node out_P_hi_hi = cat(out_P_hi_hi_hi, out_P_hi_hi_lo) @[BoothMul.scala 101:17]
    node out_P_hi = cat(out_P_hi_hi, out_P_hi_lo) @[BoothMul.scala 101:17]
    node _out_P_T = cat(out_P_hi, out_P_lo) @[BoothMul.scala 101:17]
    out.P <= _out_P_T @[BoothMul.scala 101:9]
    out.Q <= Q @[BoothMul.scala 102:9]
    out.c <= count @[BoothMul.scala 103:9]
    out.comp <= Acomp @[BoothMul.scala 104:12]
    out.shift <= shift @[BoothMul.scala 105:13]

